package 基础知识.数据结构;

public class lxzh {
    public static void main(String[] args) {
        int a = 128;
        byte b = (byte) a;//强制转换（小心“内存溢出”）
        float c = a;//自动转换
//强制转换  (数据类型)+变量名   高到低
//自动转换  低到高
        System.out.println(a);
        System.out.println(b);
        System.out.println(c);
/*
注意点：1.不能对布尔值进行转换
       2.不能把对象类型转换成不相干类型
       3.在高转低时强制转换
       4.转换时注意内存溢出,精度问题
 */
        System.out.println("=================");
        System.out.println((int)234.89f);
        System.out.println((int)-56.6);

        System.out.println("=================");
        char e = 'a';
        int e1 = e+1;
        char e2 = (char) e1;
        System.out.println(e1);
        System.out.println(e2);

        System.out.println("=================");
//操作数比较大的时候注意溢出
//jdk7,新特性数字之间可以用下划线分割
        int as = 10_0000_0000;
        int ad = 20;
        int asd = as * ad;//-1474836480 计算时溢出
        long asd1 = as * ad;//-1474836480  先按默认的类型计算完后在进行类型转换
        long asd2 = as * ((long)ad);//20000000000  先把一个数转换为long,然后在计算可以把整个算式的类型提升
        System.out.println(asd);
        System.out.println(asd1);
        System.out.println(asd2);

    }
}
